The present invention relates to a method and apparatus for providing an opportunistic data capability for an existing statistical multiplexing encoder platform, such as a multi-channel video data encoder. The invention relates generally to statistical multiplexing, wherein a bit rate (e.g., bandwidth) is allocated to the different channels based on the channels"" bit rate needs and the overall available bandwidth.
Statistical multiplexing is the process of encoding a number of signals at variable bit rates and combining the variable-rate bitstreams into a single fixed-rate transport stream so that the bandwidth allotted to each signal is flexible and varies with each signal""s bit rate need. Conventionally, an estimate of bit rate need is made based on signal statistics. After a bit rate is allocated based on the need, the data in each signal is compressed and encoded using a specific quantization level. The amount of data that results from the compression is examined in each channel, and the quantization level is adjusted so that channels with more encoded data receive a higher bit rate. Next, the video data is compressed and encoded again using the adjusted quantization level. The process may be repeated successively.
Currently, statistical multiplexing encoding platforms are defined according to, e.g., the DigiCipher(R) II system that is proprietary to General Instrument Corporation, the assignee hereof.
However, because of the existing installed base of such video encoders, e.g., at television studios, cable and satellite network headends, and other facilities, it would be desirable to provide a capability for opportunistic data processing for the statistical multiplexing (stat mux) mode with minimal hardware or firmware modifications to the existing digital video encoder platforms.
For example, it would be preferable to provide a plug-in card or an external box to process the opportunistic data and interface to the existing multi-channel video encoder.
The opportunistic data processing should allow additional data to be carried in the transport stream when xe2x80x9csparexe2x80x9d bandwidth is available, such as when the low complexity video sources are being encoded at the other channel encoders. The opportunistic data may include any type of data, such as side information for updating software at subscriber terminals in a television network, bank transaction data, Internet web page (Hypertext Markup Languagexe2x80x94HTML) data, Java(R) applet data, still frame video for shopping channels, games, computer software, polling data, contest data, data for interactive programs, weather data, stock data, conditional access data, program guide data, or movie data which can be downloaded for viewing at a later time.
The system should allow an opportunistic data processor to be treated by a packet multiplexer of a stat mux encoder as if it were another channel encoder, e.g., by having the same statistical information and quantization level information communicated between the opportunistic data processor and the packet multiplexer.
The system should be compatible with current statistical multiplexing encoding platforms, e.g., the DigiCipher(R) II system.
The present invention provides a system having the above and other advantages.
The present invention relates to a method and apparatus for providing an opportunistic data capability for an existing-statistical multiplexing encoder platform, such as a multi-channel video data encoder.
The opportunistic data allows various types of data to be carried in the spare bandwidth of a digital transport stream.
In accordance with the present invention, a multi-channel statistical multiplexing encoder has a plurality of channel encoders with respective buffers for receiving respective data sources (such as video data).
An Opportunistic Data Processor (ODP) has a respective buffer for receiving a respective data source (which can be any type of data, video or otherwise). The multiplexing encoder has a packet multiplexer for receiving encoded data from the channel encoders and the ODP for forming a transport stream, and a quantization level processor associated with the packet multiplexer. The channel encoders and the ODP send their bandwidth need parameters to the quantization level processor, and in response, the quantization level processor provides bandwidth allocations and a global quantization level to the channel encoders and the ODP. The channel encoders and the ODP encode their respective data sources according to the global quantization level and the respective bandwidth allocations. Moreover, the ODP generates its bandwidth need parameter: (a) by scaling its bandwidth need by a function of the global quantization level, and (b) according to a threshold quantization level.
In particular, the ODP generates its bandwidth need parameter such that essentially no bandwidth is allocated to the opportunistic data processor when the global quantization level exceeds the threshold quantization level. The ODP generates its bandwidth need parameter such that bandwidth is allocated to the opportunistic data processor only when the global quantization level is less than the threshold quantization level.
The bandwidth need of the ODP may be responsive to the ratio of the fullness level of the opportunistic data processor""s buffer to the size of the buffer.
The bandwidth need of the ODP may be scaled by the range of the need parameter. In the case of DigiCipher II system, the range of the need parameter is the size of the channel encoder""s buffers.
The function of the global quantization level attenuates the bandwidth need of the opportunistic data processor progressively more as the global quantization level is progressively greater.
In particular, the function may monotonically decrease as the global quantization level increases. The function may increase toward a value of one as the global quantization level decreases toward a minimum value. In this case, no scaling of the bandwidth by the function is applied.
The global quantization level may be determined according to an average of the bandwidth need parameters of the channel encoders. The bandwidth need parameters of the channel encoders may be indicative of a local quantization level thereof. Specifically, the global quantization level may be determined according to an average of the local quantization levels of the channel encoders.
An interface may be provided for interfacing the opportunistic data processor to the packet multiplexer and the quantization level processor. This allows an easy retrofit of existing multi-channel encoders in the field.
Or, the ODP may be built into the multi-channel encoder.
Further in accordance with the present invention, an Opportunistic Data Processor (ODP) apparatus is provided for use with a multi-channel statistical multiplexing encoder. The apparatus includes an ODP with a respective buffer for receiving a respective data source, and an interface for allowing the ODP to communicate with a packet multiplexer and a quantization level processor of the multi-channel statistical multiplexing encoder.
The ODP provides a bandwidth need parameter to the quantization level processor via the interface, and, in response thereto, receives a bandwidth allocation and a global quantization level from the quantization level processor via the interface. The ODP generates its bandwidth need parameter: (a) by scaling a bandwidth need thereof by a function of the global quantization level, and (b) according to a threshold quantization level.
The quantization level processor also receives bandwidth need parameters from a plurality of channel encoders, and, in response, provides bandwidth allocations and the global quantization level to the plurality of channel encoders. The channel encoders and the opportunistic data processor encode their respective data sources according to the global quantization level and the respective bandwidth allocations.
The packet multiplexer receives encoded data from the plurality of channel encoders and the opportunistic data processor for forming a transport stream.
The interface may be provided, for example, by a card (circuit board) that plugs into a chassis of the multi-channel statistical multiplexing encoder, where the ODP is located on the card.
Or, the ODP may be provided in an external device (housing).
A corresponding method is also presented.